const mongoose = require('mongoose')
// const bcrypt = require('bcrypt')
// const saltLength = 10

// const Joi=require('joi') //用于验证提价用户的数据是否规范.s
const moguUserSchema = new mongoose.Schema({
  // userId: mongoose.Schema.Types.ObjectId,
  username: {
    type: String,
    minlength: 2,
    // required: true,
    default: '游客'
  },
  phone: {
    type: String,
    required: true,
    unique: true
  },
  email: {
    type: String
  },
  protrait: {
    type: String
  },
  password: {
    type: String

  },
  address: {
    type: Array
  },
  order: {
    type: Array
  },
  fav: {
    type: Array
  },
  discount: {
    type: Array

  },
  signIn: {
    type: Number
  },
  attention: {
    type: Number

  },
  balance: {
    type: Number

  },
  foot: {
    type: Array
  },
  score: {
    type: Number
  },
  delgoods: {
    type: Array
  },
  takgoods: {
    type: Array
  },
  evaluate: {
    type: Array
  },
  refund: {
    type: Array
  },
  // 银行卡号
  creditCard: {
    type: Array
  },
  // 支付密码
  paypwd: {
    type: String
  },
  createAt: {
    type: Date,
    default: Date.now()
  },
  lastLoginAt: {
    type: Date,
    default: Date.now()
  }
  // role:{
  //     type:String,
  //     required:true,

  // },
  // state:{
  //     type:Number,
  //     default:0
  // }
})

// user.create({username:'zz',email:'a120@qq.com',password:'123456',role:'admin',state:0})

// 用于验证从客户端输入提交的文字是否符合数据库的规范.
// const verify=body=>{

//     const Schema={
//         username:Joi.string().min(2).max(10).required().error(new Error('用户名不符合规范')),
//         email:Joi.string().email().required().error(new Error('邮箱格式不对')),
//         password:Joi.string().min(2).regex(/^[a-zA-Z0-9]{3,15}$/).required().error(new Error('密码不符合规范')),
//         role:Joi.string().valid('normal','admin').required().error(new Error('角色值输入错误')),
//         state:Joi.number().valid(0,1).error(new Error('状态值出错'))
//     }
//     return Joi.validate(body,Schema)
// }
// moguUserSchema.pre('save', function (next) {
//   console.log('开始加密')
//   bcrypt.genSalt(saltLength, (err, salt) => {
//     if (err) return next(err)
//     bcrypt.hash(this.password, salt, (err, pwd) => {
//       if (err) return next(err)
//       this.password = pwd
//       console.log('jiami', pwd, this.password)
//       next()
//     })
//   })
// })
// 给以这个schema创建表的实例添加一个方法
// moguUserSchema.methods = {
//   compare (_password, password) {
//     return new Promise((resolve, reject) => {
//       bcrypt.compare(_password, password, (err, ismatch) => {
//         if (!err) resolve(ismatch)
//         else reject(err)
//       })
//     })
//   }
// }
const moguUser = mongoose.model('timo', moguUserSchema)
module.exports = {
  moguUser
  // verify
}
